﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
//
using CredisysTriunfadores.BusinessEntites.Prestamos;
using CredisysTriunfadores.BusinessLogic.Prestamos.Interfaz;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;

namespace CredisysTriunfadores.Web.Controllers
{
    public class PrestamosController : Controller
    {
        /*Solucionamos
         * Referencia a objeto no establecida como instancia de un objeto
         * Determine si el objeto es null antes de llamar al metodo
         * Utilice la palabra clave "new" para crear una instancia de objeto
         */
        public PrestamosController()
        {
            using (IUnityContainer container = new UnityContainer())
            {
                container.LoadConfiguration();
                container.BuildUp(this.GetType(), this);
            }
        }

        #region Declaración de dependencias
        [Dependency]
        public IPrestamoBL PrestamoBL { get; set; }

        #endregion

        //
        // GET: /Prestamos/

       // [HttpGet]
        //public ActionResult Registrar()
        //{
            //var result = PrestamoBL.GetAllPrestamos();
            //return View(result);

            //var prestamos = PrestamoBL.GetAllPrestamos();

            //var listPrestamos = from p in prestamos
            //    select new
            //    {
            //        //seleccionamos los campos que queremos mostrar
            //        Identificador = p.Id,
            //        FechaRegistro = p.FechRegistro.ToShortDateString(),
            //        CantidadCuotas = p.NroCuotas,
            //        Total = p.MontoTotal,
            //        IntervaloFechasCuota = p.PeriodoPago,
            //        AvaladoSocio = p.Avalado.Nombres + " " + p.Avalado.Apellidos,
            //        SocioUnica = p.Socio.Nombres + " " + p.Socio.Apellidos,
            //        CantidadInteres = p.TasaInteres.Interes
            //    };
            ////JsonRequestBehavior.AllowGet para que los clientes puedan tener acceso en caso contrario se negara el acceso
            //return Json(listPrestamos, JsonRequestBehavior.AllowGet);


        //}

        [HttpGet]
        public ActionResult Registrar()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Registrar(Prestamo prestamo)
        {
            var result = PrestamoBL.AddPrestamo(prestamo);

            if (!result)

                return Json(new { success = false }); // retorna vista venta mostrando los mensajes de validacion

            return Json(new { success = true });

        }

    }
}
